Extensions for modifying a graphical object to display data

ABSTRACT

A graphical manipulation tool to create and/or make modifications to a graphical object suitable for visually representing data. The graphical manipulation tool analyzes the graphical object to determine parameters of visual characteristics of the graphical object that can be used to visually represent data. A computing system, through the graphical manipulation tool, may generate metadata that defines a capacity for visual characteristics to represent data. In some cases, a preview is displayed on a user interface indicating to a user how the metadata, if incorporated with the graphical object, may result in the visual characteristics of the graphical object being used to visually represent data. If incorporating the metadata with the graphical object is desirable, the user may provide to include the additional metadata with the graphical object.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims benefit from, commonlyassigned, co-pending U.S. patent application Ser. No. 12/967,602, withinventors Vijay Mital et al., filed Dec. 14, 2010, entitled “Extensionsfor Modifying a Graphical Object to Display Data,” which is herebyincorporated by reference herein in its entirety.

BACKGROUND

People today are continuously exposed to large amounts of information,particularly in the form of quantitative data. It is often useful forsuch data to be presented in an intuitive manner. For example, a persontasked with the responsibility to give a presentation of a quantitativedata set to others may find it useful to convey the information througha visual representation, such as a pie chart or bar/line graph. Thus, bypresenting data using a visual representation, the data can be moreeasily explained than if merely numbers were presented.

It has become standard for users to operate computers having processorsrun with suitable software to gather, organize, manipulate and presentdata. Spreadsheets, for example, are commonly used to view and analyzelarge amounts of data. Portions of a data set contained within aspreadsheet may be selected in a manner to create a graphicalrepresentation of the data, such as in the form of a chart or graph. Forexample, data may be input from a spreadsheet into a line graph in astraight forward manner, so that trends along the function set forth bythe line graph and determined by the data set can be easily visualized.Data plotted out by the line graph may also be manipulated, in turn, byaltering features of the line graph and/or dimensions of the data setitself.

Creative artists have used available graphics tools to build upsophisticated and/or aesthetically pleasing graphical objects. Suchgraphical objects can be used or applied for display in a suitablecomputing environment.

SUMMARY

Aspects relate to using a graphical manipulation tool running on acomputing device to define aspects of a graphical object for visuallyrepresenting data. The graphical manipulation tool may include asoftware extension or plug-in that enables a visual artist to selectand/or explicitly define how data may bind to visual characteristics ofthe graphical object for display of the data through the visualcharacteristics. The graphical object and associated visualcharacteristics may be analyzed to determine one or more parameters ofthe visual characteristics that can be varied to visually represent datawith the graphical object. Metadata may be stored in association with arepresentation of the graphical object where the metadata represents acapacity of the visual characteristic(s) to represent data. Afteranalyzing the graphical object and the current metadata associated withthe graphical object, the software extension or plug-in of the graphicalmanipulation tool may generate additional metadata for potentialincorporation with the graphical object representing an additionalcapacity of the visual characteristic(s) to visually represent data.Having generated the additional metadata, the system may receive inputthrough a user interface for suitably incorporating the additionalmetadata.

The graphical manipulation tool may be used by the visual artist tocreate any arbitrary graphical object and/or form features in thegraphical object. Once the graphical object has been analyzed todetermine parameters of the visual characteristics of the graphicalobject that are suitable for visually representing data, additionalmetadata generated through the graphical manipulation tool defining anadditional capacity for visual characteristics of the graphical objectto represent data may be proposed to a user. Such a proposal may bethrough a display preview on a user interface indicating what aspects ofthe visual characteristics may change when used to represent data inaccordance with the additional metadata. A user may view the preview ona suitable display to understand how the additional metadata modifiesvisual characteristics of the graphical object when visuallyrepresenting data. The user may also, if desired, provide input throughthe user interface for incorporating the additional metadata with thegraphical object to make the graphical object more suitable for visualdata display.

The foregoing is a non-limiting summary of the invention, which isdefined by the attached claims.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not intended to be drawn to scale. In thedrawings, each identical or nearly identical component that isillustrated in various figures is represented by a like numeral. Forpurposes of clarity, not every component may be labeled in everydrawing. In the drawings:

FIG. 1 is a high-level block diagram illustrating a computingenvironment in which some embodiments may be practiced;

FIG. 2 is a block diagram of a system in accordance with someembodiments;

FIG. 3 is a block diagram of an interaction between a graphicalmanipulation tool and a graphical object in accordance with someembodiments;

FIG. 4 is a flow chart of a method of processing a graphical objectaccording to some embodiments in a format that aids a user to visualizethe data;

FIG. 5 is an illustrative example of a user interface through which auser is able to provide input for manipulating features of a graphicalobject;

FIG. 6 is an illustration of a representative user interface where agraphical object is chosen and dimensions of a data set are presented;

FIG. 7 is an illustration of a representative user interface where atype of visualization of the graphical object is specified;

FIG. 8 is an illustration of the representative user interface of FIG. 7in which further visual characteristics of the graphical object arepresented;

FIG. 9 is an illustration of the representative user interface of FIG. 8where a filter applied to a dimension of the data set influences theappearance of a visual characteristic of the graphical object;

FIG. 10 is an illustration of a representative user interface in whichthe visual characteristic of the graphical object is subject to thefilter;

FIG. 11 is an illustration of the representative user interface of FIG.10 in which the visual characteristic of the graphical object is subjectto different parameters defined by the filter; and

FIG. 12 is an illustration of an example of a general user interface fordisplaying data through a graphical object.

DETAILED DESCRIPTION

The inventors have recognized and appreciated the value of incorporatingwithin graphical manipulation tools the ability for users to be able toprocess a graphical object to make and/or modify aspects of thegraphical object to be more suitable for data visualization. Thisprocessing of the graphical object may be independent of the data to berepresented with the graphical object. In some embodiments metadataindicating capabilities of the graphical object to represent data may begenerated by such a tool. One or more functionalities may be includedwith a graphical manipulation tool, for example, as a plug-in,extension, or a built-in feature of the software package for thegraphical manipulation tool.

A graphical object may be created through any suitable graphicalmanipulation tool where visual characteristics of the graphical objectmay have the capacity to visually represent data. In an example of agraphical object suitable for displaying data, a dumbbell may havevisual characteristics such as a bar and weights located on oppositesides of the bar. The size of the weights of the dumbbell, for example,may increase when the range of data represented by the weights of thedumbbell is broadened. Or, the distance the weights are separated fromeach other, based on the length of the bar, may depend on a certain typeof data associated with separating different categories of other data.

Processing a graphical object may include analyzing the graphical objectto determine parameters of visual characteristics of the graphicalobject that can be varied for data to be visually represented throughthe graphical object. In the example of a dumbbell graphical object, theweights on either side of the bar may have parameters that dictate acertain shape or size for the weights, for example, based on anaesthetic constraint. However, the shape and size of the weights canalso be varied in accordance with values of data that may be graphicallyrepresented by the dumbbell. Associated with the graphical object may bemetadata that provides information as to the capacity for the visualcharacteristic(s) to represent the data. For example, metadataassociated with a graphical dumbbell may provide information onlimitations of the size or shape of the weights pertaining to theability for the weights to display data. Or, the metadata may includenew information regarding the type or color of weights available for thegraphical dumbbell to vary as a way to display data.

In further processing of the graphical object, a computing device maygenerate, through the graphical manipulation tool, additional metadatathat provides further capacity for the visual characteristic(s) torepresent data. In a graphical dumbbell, for example, the additionalmetadata may contain information regarding how the weights can berepeated, providing the graphical object with an ability to representmultiple similar data structures simultaneously. Alternatively, or inaddition, the additional metadata may contain information regarding howweights can be fractioned into segments, where visual characteristics ofthe graphical object may suitably represent data structures conducive tosub-division. A preview of the result(s) of modifying the graphicalobject with the additional metadata may be presented on a visualdisplay, showing to a user how the visual characteristic(s) in thegraphical object are modified for representing data. For example, a userinterface may present the preview as an explanation of what types ofdata the graphical object would be capable of representing if theproposed modification of the graphical object were implemented. The userinterface may also permit a user to enter input into the computingdevice for the graphical manipulation tool to include the additionalmetadata with the graphical object, for example, by storing theadditional metadata in memory in connected association with thegraphical object.

A graphical object may represent portions of a data set by mapping adimension of the data set to visual characteristics in a manner wherevalues in that dimension of the data set may alter the appearance of thevisual characteristics. Accordingly, such a mapping of dimensions ofdata to visual characteristics of a graphical object may alter theappearance of the visual characteristics based on parameters of therelationship formed between the visual characteristic(s) and thedimension(s) of data. Graphical manipulation tools may also provideusers with the ability to assign and/or define relevant datavisualization properties to a graphical object that make visualcharacteristics or elements of the graphical object suitable for data tobind to the graphical object. In some embodiments, binding data to thegraphical object involves representing the data through an animationassociated with the graphical object.

Through a traditional approach, a data set may be entered into aspreadsheet and displayed through a line graph. In some instances, aline graph may be insufficient to effectively represent other morecomplex sets of data. Further, the system may be limited in its abilityto provide the line graph with an added pattern or property that enablesthe graph to more suitably represent the data. However, aspectsdescribed herein provide for the ability not only to use any arbitraryvisual object as a foundation for which aspects of a data set may beimported into visual characteristics of the graphical object forsuitable visualization of the data, but also to tailor graphical objectsto enable visual representation of certain types of data structures. Assuch, visualizing data through separately created graphical objectsindependent from the data itself may provide for more interestingpresentation of the data while not being limited to conventionalapproaches.

In an example, it may be desirable for data relating to sales in thepast year of a company to be suitably displayed. This data may havemultiple dimensions such as sales per quarter and sales events. Salesinformation for each quarter could be displayed, for example, through aconventional bar graph that depicts the amount of sales at the end ofeach quarter. The occurrence of the sales events also could be presentedthrough a conventional graph. However, such a presentation of the data,using separate graphs, may be cumbersome for a user or not visuallyinteresting. As a solution, it may be beneficial for both sets of datato be presented simultaneously together, as one visual object that mayhave interesting visual characteristics or multiple characteristics thatcan be varied to represent values of the data in multiple dimensions.Indeed, embodiments presented herein provide for the ability, using agraphical manipulation tool, to modify a graphical object to visuallypresent data in an intuitive manner using visual characteristics thatenable dimensions of data to be presented through the graphical object.

Data may be presented through an appropriate graphical object based onthe capacity for the graphical object to represent the data. Suchcapacity may be determined by a number and type of visualcharacteristics of the graphical object with associated parameters thatcan be varied to represent the data. A data set may be represented bysuch a graphical object if each dimension of the data to be displayedcan be matched to a parameter of a suitable type. For example, somedimensions of a data set may take on values that are continuous. Apercentage increase in sales, for example, may take on any numericvalue. To visually represent a percentage of sales increases, thatdimension of the data set may be mapped to a visual characteristic thathas a parameter that may have a value that may similarly be variedcontinuously, though possibly subject to constraints such as constraintson a maximum or minimum value. For example, a length of an object ordensity of shading are examples of visual characteristics that may bevaried continuously. Other dimensions of data may exhibit other types ofstructure, such as data represented by a set of enumerable values, beinga range of values, etc. Visual characteristics that are of matchingtypes may be selected to represent such dimensions.

To define how data may visually map to visual characteristics of agraphical object, metadata may be stored in association with thegraphical object and may be appropriately modified according to aspectspresented herein so that appropriate data structures may be suitablydisplayed through the visual characteristic(s) of the graphical object.

Metadata pertaining to the ability for data to be bound to visualcharacteristics may be determined in any suitable way. In someembodiments, parameters of data visualization for a graphical object maybe inferred by an analysis of the visual characteristics of thegraphical object. A graphical object may have visual characteristics(e.g., shape) that includes parameters (e.g., length of the boundary ofthe shape) which may or may not be applicable to certain types of data.In some embodiments, a developer or creator of a graphical object mayexplicitly define parameters of certain visual characteristics of thegraphical object through which certain types of data may be displayed.In some embodiments, a graphical manipulation tool may generate andpropose parameters through which visual characteristics of the graphicalobject may display data.

Analyzing a graphical object and generating parameters for visualcharacteristics of the graphical object to represent data may beperformed automatically with minimal user intervention or manually wherea user provides, through an input, a set of commands that define theparameters for which the graphical object may display data.Alternatively, a graphical manipulation tool may automatically analyze,generate and/or propose parameters for the visual characteristic(s) torepresent data and receive a manual input to create and store metadatathat define such parameters in association with the graphical object. Inan example, automatic initiation of analysis of aspects of the graphicalobject may occur periodically as a background process while a user isoperating a graphical manipulation tool to create the graphical object.In some cases, the graphical manipulation tool may perform periodicanalyses at a particular frequency according to a software setting.

Manual initiation of a graphical object analysis may occur upon thesystem receiving a user input. For example, a user interface may have asuitable actuating element (e.g., a button or hot spot) that enables auser to manually initiate analysis of a graphical object and generate asubsequent proposal for modifying the graphical object to incorporateone or more properties for rendering a visualization of data. In someembodiments, upon creation of a graphical object through a graphicalmanipulation tool, a prompt automatically appears on a display of a userinterface requesting input as to whether an analysis of the graphicalobject will be initiated. If that analysis is initiated, the graphicalmanipulation tool may generate suitable metadata and display a proposalfor including the metadata with the graphical object. The graphicalobject may be completed when formed, analyzed for potential datavisualization, and modified to make more suitable for visuallyrepresenting data.

In some embodiments, a system for presenting a display of data hasaccess to a data set and a graphical object. The system analyzes thegraphical object and the data set to determine whether visualcharacteristics of the graphical object are compatible with dimensionsof the data set. If so, mapping of dimensions in the data set to thevisual characteristics may result in a visualization of the data throughthe graphical object. In cases where multiple graphical objects areavailable, the system may propose to a user one or more of the graphicalobjects which have characteristics that are suitable for representingeach dimension of the data set that the user has indicated are to bedisplayed. The user may then select a suitable graphical object on towhich the data set is to be mapped and the system may subsequentlygenerate a visualization of the data. Once a graphical object ispresented (e.g., on a display of a user interface) where dimensions of adata set are bound to visual characteristics of a correspondinggraphical object, a user may interact with portions of the graphicalobject and/or the data set through a graphical interface and providemodifications to the data visual dynamically.

Alternatively, a single graphical object may be available, yet a numberof different modifications may be made to the graphical object forrepresenting data differently. Accordingly, the system may propose eachof the different modifications that may be applied to the graphicalobject (e.g., by adding different types of metadata) for viewing datadifferently and the user may select which modification to be employedwith the graphical object.

Embodiments described herein provide an ability for dimensions of datato be mapped to arbitrary graphical objects where the dimensions of dataare suitably represented. Any suitable graphical manipulation tool(e.g., MICROSOFT EXPRESSION® Studio, MAXON Cinema 4D) may be used tocreate graphical objects. As discussed above, graphical objects mayinclude information (e.g., metadata) that sets forth the parametersthrough which dimensions of data may be bound to the graphical objects(i.e., to visual characteristics). In an embodiment, a software toolanalyzes a graphical object and produces metadata that describes theextent to which data may be bound to various visual characteristics ofthe graphical object. In another embodiment, as part of creating thegraphical object, a user expressly defines parameters (e.g., describedby metadata) of visual characteristics in the graphical object thatcertain types of data may be mapped to. A software plug-in may beavailable for the user to provide input to a user interface for a systemto define the parameters of the graphical object for representing thedata. Such input may be provided during the process of creating thegraphical object and/or after the graphical object is created whereparameters for representing data may be defined. In some embodiments, asoftware tool analyzes a data set, which may or may not have appropriatemetadata to determine a number and type of dimensions that could bedisplayed, and determines one or more graphical objects that would besuitable for representing the data set. Such a tool may receive userinput selecting dimensions of a data set to be displayed.

The analysis may be performed in accordance with heuristics or othersuitable criteria. For example the system may analyze one or more visualcharacteristics of a graphical object to determine whether the visualcharacteristic(s) has, or could have, a regular pattern for displaying arepresentation of data. In one example, a regular pattern may involverepetition where a visual characteristic or a portion of a visualcharacteristic (e.g., an element of the visual characteristic such as abeveled surface on a weight of a graphical dumbbell) may be repeated anumber of times for representing data. The pattern of repetition may berepresented as one or more layouts of arrangements of the repeatedelements of the visual characteristic. For instance, a beveled surfacemay be repeated a number of times to produce an arrangement on a weightof a graphical dumbbell suitable for representing data through therepeated beveled surface. Or, sprinkles on a graphical donut may berepeated a suitable number of times according to a layout having anarrangement where each repeated sprinkle represents data in a data set(e.g., sales events occurring over the course of a year). In anotherexample, a regular pattern may involve sub-division of a visualcharacteristic or a portion of a visual characteristic (e.g., an elementof the visual characteristic such as potential segments of a graphicaldonut) into segments for visually representing data. The pattern ofsub-division may be represented as one or more layouts of arrangementsof the sub-divided element of the visual characteristic. In a graphicaldonut, for example, the dough may be sub-divided any number of times toproduce a layout having an arrangement where each sub-divided segment(or further sub-divisions thereof) may be used to represent data in adata set (e.g., sales data for each day of a month). Once the systemdetermines the ability for a visual characteristic of a graphical objectto take on certain patterned properties that the tool has beenprogrammed to recognize as existing in a data set to be displayed, aproposal may be presented through the appropriate graphical manipulationtool on a user interface. Upon incorporating the patterned properties,the graphical object may display a suitable data set by binding tovisual characteristic(s) in accordance with the updated properties.

Analysis of a graphical object may involve determining what geometricdimensions in the graphical object, such as the height or width of anelement (e.g., sphere, bar, etc.) of a visual characteristic, may besuitable for data visualization. When binding data to one or more visualcharacteristics of a graphical object, certain constraints may bespecified, such as maintaining a boundary or an aspect ratio of aparticular feature of a visual characteristic, or limiting one dimension(e.g., height) to be no more than a certain amount of times anotherdimension (e.g., 5 times the width). Dimensions of a visualcharacteristic may correspond with a certain coordinate system, such ascartesian, spherical and/or cylindrical. For example, a visualcharacteristic may be subject to a constraint where rotation around adefined point is specified by an arc that spans a particular angle.

In an example described further below of a graphical donut, oneconstraint may include the angle spanned by an arc defining the size ofa partitioned segment within a graphical donut. By setting each segmentof a graphical donut to represent the amount of sales during a givenmonth, the angle spanned by the arc of each segment may be limited sothat the graphical donut is sub-divided into twelve different segments.As such, a constraint applied to a graphical donut may include angles ofsegments forming the donut required to collectively total 360 degrees.Though, for a sliced donut, segments forming the donut might not total360 degrees. In some embodiments, some visual characteristics havingcertain dimensions are not used to represent data. For example, a holeof a graphical donut might not be suited to represent data. Further, thesize of a hole in a graphical donut may be altered subject to generalscaling of the visual characteristic in relation to other geometricalfeatures of the graphical object.

Other properties of visual characteristics of a graphical object mayalso be analyzed for their potential to visually represent data. Someproperties include the color and/or texture of visual characteristics.For example, colors and/or textures can be used as identifiers within avisual characteristic for certain categories of data. Alternatively orin addition, color shadings (e.g., darker, lighter) or degree of texture(e.g., smoother, rougher) may be indicative of degrees of variation in adata set. Lighting properties, such as glows, luminescence, colorintensity, shadows and spotlights, may also be incorporated withinvisual characteristics of a graphical object for representing data. Anysuitable feature(s) of a visual characteristic may be proposed assuggestion(s) on a user interface for the graphical object to besuitably modified (e.g., addition of metadata) to make more suitable forvisually representing data. A user may also provide input through aninterface indicating one or more of these properties, such as colorposition, height, constraints, color, separation, etc. to be indicatedas a parameter for binding data to a visual characteristic.

An analysis of a graphical object may reveal a series of independentelements of a visual characteristic that may be repeatable for visuallyrepresenting data. For example, pins on a map may be repeatable asfeatures for building a more complex visual object for representingvarious dimensions of a data set. Constraints may also be set indicatinghow few or how many times certain elements can be repeated on agraphical object. The graphical object may include metadata that definesthe capacity for the visual characteristic(s) to visually representdata. For example, the metadata may indicate a maximum number ofrepetitions and/or sub-divisions of the element(s) of the visualcharacteristic(s) in the graphical object for data display.

In some embodiments, a computing device analyzes the graphical objectthrough an extension of the graphical manipulation tool to identifyactual or potential hierarchical features of visual characteristics thatmay be relevant to data visualization. For example, a visualcharacteristic may include an element that is able to contain or envelopportions of another element of the visual characteristic, such asthrough a nested arrangement. Or, a visual characteristic may involvelayering of portions of the visual characteristic that may be amenableto visually representing certain data structures. Upon an appropriateanalysis, such features may be proposed as suggestion(s) on a userinterface for the graphical object to be suitably modified (e.g.,addition of metadata). The system may receive input incorporating theability for one or more of these features to be suitably bound to data.

In certain embodiments, a computing device analyzes the graphical objectthrough an extension of the graphical manipulation tool to identifyvisual characteristics that have, or could have, a feature amenable toanimation where the animation provides a visual representation of data.An animation may be suitable for representing a particular series ofdata, for example, data that changes over time. A suitable animation mayinclude a visual characteristic subject to translation, rotation,progressive revelation of a particular pattern or series, etc. In somecases, certain visual characteristic may have intrinsic features thatare conducive to animation, such as a graphical head that nods with acertain frequency, or the depth that a graphical bow may be pulled back,which are features suitable for representing dimensions of a datastructure. Or, a visual characteristic may provide a series of framesfor an animation, indicating different properties for some value(s) ofdata over time. One or more appropriate animations may be proposed assuggestion(s) for modification of a visual characteristic of a graphicalobject, such as through inclusion of additional metadata. In some cases,a user may provide input through a user interface for modifying thegraphical object to support animation(s) that provide for suitablebinding to data.

Any suitable set of heuristics may be used through a graphicalmanipulation tool in analyzing and proposing modifications to agraphical object whether already created or in the process of beingcreated. In some embodiments, statistical pattern matching techniquesmay be used to determine properties or potential properties of one ormore visual characteristics that could be used for visualizing datathrough the graphical object. The process of modifying a graphicalobject to make suitable for representing data may include an interactivedisplay that permits a user to observe and directly make changes tometadata characterizing the behavior of the visual characteristic(s)used to visually represent data. For example, a user interface mayinclude one or more software-generated windows for a user to provideinput, such as by typing or clicking on an expression for implementingmodifications represented by the expression with the graphical object.

In some embodiments, a computing device running a suitable graphicalmanipulation tool may group certain implementations of modifiedgraphical object(s) as a feedback mechanism for determining theusefulness of each implementation. For example, the likelihood that aparticular modification of a graphical object will be proposed maydepend on how previously similar modifications of graphical objectsfared. That is, if it is determined that a certain type of modificationof a graphical object is generally useful for visually representingdata, then there is a high likelihood that the system running thegraphical manipulation tool will propose a similar suggestedmodification for another graphical object. Or, vice versa, where thesystem will be likely not to propose a certain type of modification to agraphical object if that type of modification has generally beendetermined not to be useful. Degree of “usefulness” may determined inany suitable manner, such as by assigning values to specific types ofmodifications based on user feedback, or for example, tracking usagefrequency of certain types of modifications where the more frequentlyused types of modifications will be proposed more often thanmodifications that are less frequently used. In this respect, the systemincludes an “intelligent memory” that informs how the system willpropose modifications of graphical objects for visually representingdata.

For some embodiments, proposing a suggestion as to a potentialmodification of a graphical object includes presenting a preview on adisplay of a user interface indicating how a visual characteristic ofthe modified graphical object would represent data, if implemented torepresent data. In some embodiments, a proposal may include a suggestionthat provides an aesthetic fix to a visual characteristic that makes thegraphical object more suitable for data visualization. For example,certain aspects of visual characteristics may be amenable to aestheticmodification, such as lighting, focus, depth, distance between or aroundelements, etc.

FIG. 1 is a high level diagram illustrating a computing environment 100in which some embodiments of the invention may be practiced. Computingenvironment 100 includes a user 102 interacting with a computing device104. Computing device 104 may be any suitable computing device, such asa desktop computer, a laptop computer, a mobile phone, or a PDA.Computing device 104 may operate under any suitable computingarchitecture, and include any suitable operating system, such asvariants of the WINDOWS® Operating System developed by MICROSOFT®Corporation.

Computing device 104 may have the capability to communicate over anysuitable wired or wireless communications medium to a server 106. Thecommunication between computing device 104 and server 106 may be overcomputer network(s) 108, which may be any suitable number or type oftelecommunications networks, such as the Internet, a corporate intranet,or cellular networks. Server 106 may be implemented using any suitablecomputing architecture, and may configured with any suitable operatingsystem, such as variants of the WINDOWS® Operating System developed byMICROSOFT® Corporation. Moreover, while server 106 is illustrated inFIG. 1 as being a single computer, it may be any suitable number ofcomputers configured to operate as a coherent system. Computing device104 may also have access to any suitable source of data 110 through adirect connection and/or over a network 108.

In the embodiment of FIG. 1, a data analysis system may execute onserver 106, and computer 104 may provide a user interface through whicha user 102 may enter inputs and receive results. However, there is norequirement that the data analysis system execute on a server and itmay, for example, execute wholly on computer 104.

Regardless of the type of input provided by user 102 that triggersgeneration of an input, computing device 104 may send the input toserver 106 to obtain information relevant to the input. That informationmay be obtained from one or more data sets stored in database 110 whichis accessible directly and/or over network 108. Information may bedisplayed on a display of computing device 104. A display may be anysuitable display, including an LCD or CRT display, and may be eitherinternal or external to computing device 104.

As shown in FIG. 2, embodiments of the system 200 may include a user 102on a workstation 104 having access to a graphical manipulation tool 210and a database 270. The graphical manipulation tool 210 incorporates anumber of software tools 220. A user 102 may employ the graphicalmanipulation tool 210 to create a graphical output, resulting in agraphical object 230. A user 102 may also use graphical manipulationtool 210 to modify an existing graphical object. The graphical object230 includes visual characteristics 240 having values 250 that definethe visual characteristics for display in accordance with any suitablesoftware environment. The graphical object may also include metadata 260that contains information related to aspects of the visualcharacteristics and/or values, for example, relating to how one or moreof the visual characteristics may represent data.

The system 200 may also include a database 270 where a user may select adata set 280 from the database. The data set 280 includes dimensions ofdata 290 which, in turn, include values of data 292. In embodimentsdescribed herein, a suitable mapping of the data set 280 with thegraphical object 230 may occur. For example, dimensions of data 290 ofthe data set 280 may map to suitable visual characteristics 240 of thegraphical object 230. Similarly, values of data 250 within thedimensions of data 290 may map to corresponding values 250 of visualcharacteristics 240, in accordance with parameters set forth by themetadata 260. It should be appreciated that a graphical manipulationtool 210 and a database 270 may be stored and/or accessed on the same orseparate computing devices.

FIG. 3 provides a more detailed system view of graphical manipulationtool 210 having software tools 220 that perform various functions uponreceiving an appropriate input for creating and/or modifying a graphicalobject 230. An example of a software tool is one that manipulates agraphical object 230 by incorporating graphical features 221 into thegraphical object 230, such as by permitting certain features to bedrawn, imported and/or placed within the graphical object. Anothersoftware tool may involve performing an analysis 222 on a graphicalobject 230 to determine what parameters of visual characteristics eitherexisting or potentially added, of the graphical object 230, may besuitable for visually representing data. Based on such an analysis, yetanother software tool may generate one or more proposals 224 of how agraphical object 230 may be modified to be more suitable to visuallyrepresent data. For example, from the results of a suitable analysis,the software tool may generate metadata that defines how the visualcharacteristic(s) may be modified to represent data, and the effect ofincluding the metadata with the graphical object may be previewed as aproposal. A further software tool may receive input to implement one ormore changes 226 to the graphical object 230 so as to better enable datato visually bind to the graphical object 230.

Graphical object 230 may include a number of visual characteristics 240that may or may not be suitable for binding to data. Examples offeatures of visual characteristics 250 of the graphical object that maybe useful for visually representing data may include adjustabledimensions 251, repeatable features 252, modifiable material properties253, capability for animation 254, modifiable lighting properties 255,sub-dividable features 256, boundary properties 257 and layeringproperties 258. It can be appreciated that other features of visualcharacteristics 250 may also be useful for visually representing data.The graphical object may include metadata 260 which defines how data maybind to certain features of visual characteristics for displaying thedata. Such metadata 260 may include certain parameters 261, rules 262,constraints 263, aesthetics 264 and definitions of animations 265 whichgovern the ability for visual characteristics of the graphical object todisplay data. Aspects of visual characteristics and metadata may beinterrelated. For example, a constraint on a repeatable feature and anadjustable dimension may be subject to an aesthetic rule where certainfeatures can only be repeated a certain number of times or enlarged acertain amount so as not to be larger than or encroach upon anotherfeature of the graphical object. Thus, the graphical manipulation tool210 can be used to analyze the graphical object, generate additionalmetadata and present a proposal based on the additional metadata for howthe graphical object can be modified to more suitably represent data,and implement one or more changes in the graphical object (e.g., addingthe metadata to the graphical object) so that the graphical object isable to more suitably represent data.

FIG. 4 depicts a flow chart for using a graphical manipulation tool topropose and implement modifications in a graphical object for displayingdata. Upon beginning 300, in step 310, a graphical object having anumber of visual characteristics is selected. In step 320, the selectedgraphical object is analyzed by the system to determine parameters ofthe visual characteristics that may be suitably varied to bettervisually represent data. In step 330, stored metadata representing thecapacity of the visual characteristics to represent data is identifiedthrough the analysis of step 320. The system generates additionalmetadata in step 340 representing an additional capacity of the visualcharacteristics to represent data. In some cases, a preview of how theadditional metadata may alter the graphical object before and/or afterdata is bound to the graphical object may be presented. In step 350, thesystem then receives an input through a user interface for incorporatingthe additional metadata with the graphical object. In some embodiments,a user determines that the proposed metadata is unsuitable forincorporating in the graphical object and provides input for the systemto generate and propose a different set of additional metadata for theuser to preview. In such a case, the user may step through a library ofpossible selections of additional metadata for potential incorporationwith the graphical object. Once, the graphical object is suitablyupdated so as to visually display data, the process may be finished 360and the graphical object, for example, may be saved or exported asdesired.

FIG. 5 depicts a graphical object 400 having visual characteristics thatmay be manipulated according to certain parameters, which may berepresented by metadata associated with the object. One visualcharacteristic involves the axes of the graphical object. An axisadjustment box 410 is used to set parameters of the axes, in this case,to be “Linear Type” axes. Such a value may indicate that the axis issuitable for representing data that varies in a regular pattern over arelatively finite range. If other types of axes can be specified, otheroptions may appear. For example, if a logarithmic type were supported,that designation would provide a further indication of the types of datathat could be supported. Though, in this example, horizontal axis 412and vertical axis 414 are visual elements of the axis visualcharacteristic set to be linear in nature.

Another visual characteristic includes bars bound by the axes of thegraphical object. A bar adjustment box 420 reveals parameters associatedwith the bars 422, 424, 426 of the graphical object. In this example,bar adjustment box 420 is set so that bars are repeatable up to 4 timesand the shape of each bar is replaceable according to parameters definedby the checkboxes “Stretch to fit”, “Crop” and “Scale and Crop.” Inmapping data to the object repeatability of the bars may be adjusted,for example, to be repeated 2 times. As shown, a bar is repeated twice,resulting in three bars displayed. If the “Stretch to fit” checkbox ismarked, then the shape of each bar is capable of being stretched,through a suitable input, for example, to fit an aesthetic rule. Theaesthetic rule may be that the bars are required to stretch horizontallyso as to be evenly spaced along the horizontal axis 412. Marking the“Crop” checkbox involves each bar having the ability to be croppedaccording to a user input so as to provide a more detailed view of thedata represented by the bar and within the cropped region. Marking the“Scale and Crop” checkbox involves the ability for each bar to becropped in addition to scaling the more detailed view of the datarepresented within the cropped region so that the data is more easilyviewable.

Label adjustment box 430 is also provided to indicate that variouslabels on the graphical object may be modified accordingly. In FIG. 5,the label adjustment box 430 is currently set to “Label,” where currentlabels which are disposed along the horizontal axis 412 are adjustablebased on a user input. Labels of other features may also be adjusted,provided by options given by the headings “Axis”, “Shape”, “Image”,“Description” and “Repeatable.” For example, if the heading “Axis” isselected, then labels for one of the axes (e.g., horizontal axis 412,vertical axis 414) may be adjusted so that a label corresponding toeither the horizontal axis 412 or the vertical axis 414 may be set torecite features of what each bar represents.

After the graphical object is produced and modified to be amenable tovisually representing data using an appropriate graphical manipulationtool, the graphical object may be selected for data to visually bind tothe graphical object. FIGS. 6-12 now described, illustrate an example ofa user interface of a data visualization system where a graphicalobject, having been modified according to the process described in FIG.4 to incorporate additional metadata, is used to visually representdata. Within the user interface, a user has the ability to select anumber of icons on the user interface. “Visual” icon 1010 permits theuser to select from a number of graphical objects through which data maybe displayed. “Data” icon 1020 allows the user to choose a data set tobe displayed through the selected graphical object. The user interfacealso provides a canvas 2000 on which visualizations of data may bedisplayed.

The graphical donut, as described further below, has visualcharacteristics that are able to visually represent data. However, itcan be appreciated that the graphical donut may have, at one point,included a minimal amount of metadata defining how visualcharacteristics may represent data. Indeed, prior to a suitable analysisand generation of additional metadata defining further capacity for thevisual characteristics to represent data, the graphical donut may havesimply been an image of a donut with icing and sprinkles without theability to visually represent data. Accordingly, further processing ofthe graphical donut may have been performed to make visualcharacteristics such as the base, icing and sprinkles amenable forvisually representing data. It can also be appreciated that thegraphical donut, described below, may be subject to further analysis asto whether the graphical donut may incorporate even more metadatadefining additional aspects of how the graphical donut may representdata (e.g., through an rotating and/or translating animation).

FIG. 6 illustrates a chart 1200 that depicts dimensions of a data set,for example, sales data 1220 reported from a donut shop of differentflavors of donut 1210, each flavor of donut having a fat content 1230.As such, a listing of flavors of donuts 1210 and the respective sales1220 and fat content 1230 for each flavor of donut is provided. As shownin the example, 60 million in revenue was reported from sales of theglazed donut having 14 g of fat, 25 million in revenue was reported fromsales of the chocolate donut having 18 g of fat, 10 million in revenuewas reported from sales of the chocolate filled donut having 19 g offat, and 5 million in revenue was reported from sales of the strawberrydonut having 10 g of fat. In the representative embodiment, the userselects the chart 1200 and applies the mapping of the data from thechart 1200 to the graphical donut 1100. A method for making such aselection may involve, for example, the user manipulating a pointer toselect the chart 1200 and dragging the data set over to the graphicaldonut 1100 for subsequent processing and visualization of data to occurby the system.

When the graphical donut 1100 was in the process of being created, thedonut may have been analyzed by a software feature of the graphicalmanipulation tool as to whether certain features or elements of visualcharacteristics of the donut may be suitable for displaying datavisually. Visual characteristics such as sprinkles or icing on the donutmay have been determined to be useful for representing data andproposals as to how the visual characteristic(s) would display datawould be presented. Based on an input, metadata defining aspects of thevisual characteristic(s), such as icing or sprinkles, to which data maybind may be incorporated in the graphical object.

In the embodiment, the user interface is built based on metadataassociated with the graphical donut 1100. As shown in FIG. 7, a numberof parameters that describe a visual mapping between the data of salesreported and the graphical donut 1100 is displayed. Accordingly, basedon the metadata incorporated in the graphical donut 1100 (e.g., througha software plug-in of the graphical manipulation tool described above),a modified graphical donut 1102 having sales data incorporated into thedonut is presented. Graphical donut 1102 includes the dough 1410 andcolors of icing 1420 segmented into twelve different regions. Each ofthe twelve regions corresponds to sales reported for each month of theyear where the area occupied by each segment of icing 1420 is indicativeof the amount of sales reported for that month. For example, when thearea of a first segment of icing corresponding to a first month isdepicted to be greater than the area of a second segment of icingcorresponding to a second month, the sales reported at the end of thefirst month is interpreted in the sales representation to be greaterthan the sales reported at the end of the second month. Or, in anotherexample, the color of icing displayed on a graphical donut may indicatea certain amount of sales. For instance, chocolate icing displayed forone segment may be indicative of greater sales reported for oneparticular month as compared with strawberry icing displayed for anothersegment, indicating sales reported for a different month.

In some embodiments, a number of proposed data visuals, through the samegraphical object, are made available for the user to select. Theproposed graphical donuts for representing the data are different inappearance as well as the number and type of visual characteristics towhich data can be mapped. Each of the proposed graphical donuts may havedifferent sets of metadata indicating how each graphical donut may beused to visually represent data. Accordingly, graphical donut 1102 isonly one proposed visual of how the data set may be displayed. Indeed, acollection 1300 of proposed visuals 1310, 1320, 1330, 1340, 1350, eachtailored to represent data in a different way, are presented on thecanvas 2000 for a user to choose. In the example shown in FIG. 7,graphical donut 1102 corresponds to selection of proposed visual 1340.As shown, the graphical box representing proposed visual 1340 isdarkened and graphical donut 1102 is displayed on a main portion ofcanvas 2000.

In an embodiment, if proposed visual 1310 is selected, the graphicaldonut displayed in the center of the canvas 2000 would only includeparameters associated with the dough of the donut; that is, dimensionsof data would be presented on the donut with respect to the dough of thedonut, without reference to other visual characteristics such as icingor sprinkles. In such a case, it may be desirable, for example, thatsales data for an entire year be displayed, without a break down ofvariation within the year (e.g., by quarter, by sales event). In anexample, the dough of the donut may take up a larger volume for greateramounts of sales reported, and conversely, the dough may be smaller involume for a smaller amount of sales revenues reported. In some cases,proposed visual 1310 may have been created using a graphicalmanipulation tool that performed an analysis on the original graphicalobject, suggesting the modes in which the graphical object may representdata, and implementing those modes in the graphical object (e.g.,through the addition of appropriate metadata).

For example, if proposed visual 1320 is selected, the graphical objectdisplayed in the center of the canvas 2000 would include only portionsof icing related to certain dimensions data that are to be presented,without showing the type of donut or sprinkles. For example, if it isdesirable for sales data reported from only two quarters to bedisplayed, and not the entire year or sales from events during the year,then the icing graphic associated with only those two quarters will bepresented. Similarly to that described above for proposed visual 1310,proposed visual 1320 may have been created via an analysis on theoriginal graphical object where the graphical object is suitablymodified to represent data.

Proposed visual 1330 enables data to be presented by all three majorvisual characteristics of the graphical donut; that is, the dough of thedonut, icing and sprinkles together. In such a case, and withoutlimitation, the dough of the donut may represent a total volume of salesreported at the end of a year, the icing may signify the amount of salesreported at the end of each quarter, and the sprinkles may indicate theoccurrence of particular sales events that have contributed to overallsales. Proposed visual 1330 may have been created out of a modificationof the original graphical object to incorporate such features of datadisplay.

Proposed visual 1340, which refers to the graphical donut 1102 of FIG.7, combines aspects of proposed visualizations 1310 and 1320, permittingdata to be displayed by the dough of the donut and the icing, yetwithout sprinkles, in accordance with how the original graphical objectwas modified to be suitable for visually representing data. Accordingly,for example, total sales reported at the end of a year is presented byselecting the donut and sales reported at different points throughoutthe year (e.g., monthly, quarterly) is displayed by selecting certaintypes of icing to represent the break down of those reported sales.

Selecting proposed visual 1350, for example, would result in thegraphical donut displayed on canvas 2000 to include data displayed bythe dough of the donut and the sprinkles, yet without icing. In anexample, data represented by the graphical donut would include annualsales reported, represented by the dough of the donut, and discretesales events, represented by the sprinkles.

Indeed, proposed visuals may be selected as desired. For example, aproposed visual may be chosen according to whether how appealing orinteresting the style of the visual appears. A proposed visual may alsobe selected based on its functionality, for example, the number ofdimensions of data that can be displayed through the visual.

Also shown in FIG. 7, a graphical modification tool 1500 illustrates anembodiment of how various parameters of visual characteristics of thegraphical donut 1102 may be adjusted. For example, “Donut” adjustmentbox 1510 may be manipulated by a user for the system to modifyparameters of data visualization through the donut itself and/or thedata that is represented by the donut. “Icing” adjustment box 1520 maypermit a user to provide input for the system to modify parameters ofhow the icing of the graphical object is used to display data and/or thedata itself represented by the icing. “Sprinkles” adjustment box 1530may also provide a user with the ability to provide input for the systemto adjust parameters relating to a mapping between the graphicalsprinkles and the data presented by the sprinkles Each graphical objectmay include a particular graphical modification tool where metadatadefining how visual characteristics of the graphical object may visuallyrepresent data also defines how the graphical modification tool may beused to adjust what data is represented by the visual characteristicsand in what manner. In some embodiments, a graphical modification toolmay be used as a graphical manipulation tool for incorporating metadatainto a generic graphical object. However, it can be appreciated that agraphical manipulation tool may be used independent from a data set.

As discussed previously, a user chooses the type of graphical objectcorresponding to particular dimensions of data for the system to renderthe data visual. In the representative embodiment, the user has selecteda graphical donut to represent data regarding the revenue generated fromdonut sales reported over a year. While aspects of adjustment in the“Donut” adjustment box 1510 are not shown, the box 1510 may be opened toreveal features relating to how the graphical donut may be adjusted. Forexample, a different flavor donut may be selected to represent the data.Metadata generated by analysis of this donut graphical object may beused to render this interface. For example, analysis may have resultedin metadata indicating that the donut can be displayed to appear slicedor to have portions depicted in different colors. Likewise analysis mayhave revealed that visual characteristics associated with sprinkles maybe varied based on data values. For example, data values may control thenumber or color of sprinkles.

Given that graphical donut 1102 is displayed through selection ofproposed visual 1340, features of the icing 1420 may be readily adjustedthrough modification of parameters in regions provided by “Icing”adjustment box 1520. “Icing” adjustment box 1520 includes a “Slices”region 1522 that provides a user with the ability to provide input forthe system to adjust what dimensions of data are represented by thesegments of icing depicted in the graphical donut. A “Based on” region1524 permits a user to provide input as to what type of data the icinggenerally represents. The “Slice Colors” region 1526 allows a user todetermine what colors will represent certain slices of icing through thevisual rendering. An “Other Properties” region 1527 is further providedwhere more options for adjusting parameters of the icing will appearupon selection of this region.

In the example shown, the “Slices” region 1522 is currently given a“Month” setting in the drop down box and the “Based on” region 1524 isset to a “Sales” setting. The “Month” and “Sales” settings result in theicing 1420 of the graphical donut 1102 representing sales data reportedby the business at the end of each month. In some cases, the “Slices”region 1522 may be given a different setting, for example, an annual orquarterly setting. Similarly, the “Based on” region 1524 may also be setto a different parameter besides sales, for example, inventory ororganizational structure. In an example, the “Based on” region 1524 maybe set to reveal sales of a particular donut (e.g., glazed, chocolate,chocolate-filled or strawberry), rather than sales of all donuts, sothat it can be determined which donuts are more or less popular.

The “Slice Colors” region 1526 follows according to settings determinedby the “Slices” region 1522 and the “Based on” region 1524, denoting thecolors of each slice to be “Custom” selected. Hence, color selectionregion 1528 is provided adjacent to the “Slice Colors” region 1526 for auser to select what colors in the graphical rendering will denote whichsegments in the graphical donut 1102 representing months of the year. Insome cases, the “Slice Colors” region 1526 may be given a setting otherthan “Custom,” for example, a “Default” setting where colors for eachsegment that represent months in the year may be automatically set todefault colors determined by the system. Or, in another example, if the“Slices” region 1522 is set to an “Annual” setting (rather than by“Month”), then for sales data reported from the past few years, thecolor selection region 1528 may be reorganized so that selection ofsegments in the graphical donut 1102 represent past years as opposed tomonths.

Upon receiving user input for the above settings, the system retrievesthe appropriate dimensions of data from the data set for mapping to thecorresponding visual characteristic. Values of parameters that modifythe appearance of each visual characteristic are set based on the valueswithin each dimension. As a result, the graphical object is renderedaccording to the parameter values using known techniques for displayingobjects with adjustable characteristics. In the example, for the icingvisual characteristic, as the “Slices” region 1522 is set to “Month” andthe “Based on” region 1524 is set to a “Sales,” the system acquires adimension of data from the data set having to do with sales revenuesreported for each month. Values of parameters corresponding to featuresof the visual characteristic that give rise to appearance are then setto match up with values of the dimension of sales revenues for eachmonth.

Continuing to refer to FIG. 7, currently selected proposed visualization1340 does not provide for data to be represented by sprinkles, so nooptions are available for parameters within the “Sprinkles” adjustmentbox 1530 to be adjusted. Even so, various regions are still provided forviewing in the “Sprinkles” adjustment box 1530, including a “Candy”region 1532, a “Based on” region 1534, and a “Candy Colors” region 1536,explained in further detail below with respect to FIG. 8.

While in FIG. 7, graphical donut 1102 is displayed on canvas 2000 viaselection of proposed visualization 1340, though, FIG. 8 depicts theresult of selecting proposed visualization 1350. Hence, selection ofproposed visualization 1350 results in a graphical donut 1104 withouticing, yet having sprinkles, displayed on the canvas 2000. In anembodiment, proposed visualization 1350 is selected by the user,resulting in the box representing proposed visualization 1350 to bedarkened and the transformation of graphical donut 1102 to currentlydisplayed graphical donut 1104. As illustrated in FIG. 8, graphicaldonut 1104 includes the donut dough 1410 with sprinkles 1430 disposedatop the base, yet without the icing illustrated.

With the selection of proposed visualization 1350, graphicalmodification tool 1500 depicts some variation from that illustrated inFIG. 7. The proposed visualization 1350 does not provide for icing to bedisplayed in graphical object 1104, and so regions associated with“Icing” adjustment box 1520 are left blank. However, various regions arestill provided for viewing in the “Icing” adjustment box 1520, includinga “Slices” region 1522, a “Based on” region 1524 and a “Slice Colors”region 1526.

As further shown in FIG. 8, the “Candy” region 1532 of the “Sprinkles”adjustment box 1530 is currently set by the user to “Flavor,” that is,for the flavor of sprinkles 1430 of the graphical donut 1104 to beadjustable by the system. The “Based on” region 1534 is set by the userto “Sales,” indicating sprinkles 1430 rendered by the system torepresent general sales reported by the company. The “Candy Colors”region 1536 is set through user input for the colors of candy to bedepicted by the system “Per slice.” Color selection region 1538 isprovided adjacent to the “Candy Colors” region 1536 to enable a user tochoose what colors will correspond to which type of flavored sprinklesare rendered in the graphical donut 1104, such as for example, glazedcandy, chocolate candy, coffee bean candy, or strawberry candy. In someembodiments, the appearance of a certain type of candy represents asales event where a particular amount of revenue was collected. In anexample not expressly illustrated or limited as such, glazed candy mayrepresent sales events where more than 20 thousand in sales wereaccrued, chocolate candy may denote events where sales between 10thousand and 20 thousand were collected, coffee bean candy may signifysales events of between 5 thousand and 10 thousand, and strawberry candymay represent sales events where less than 5 thousand in sales werecollected.

As discussed above, prior to or after a data visualization has beenrendered, various parameters of graphical objects and/or dimensions of adata set may be suitably adjusted, as desired. In some embodiments,visual characteristics of a graphical object may be appropriatelychanged to suit a preferred manner of data visualization. For example,visual characteristics of the graphical object may be resized accordingto certain ranges provided by the data set to be presented. Certaincharacteristics of the graphical object may be assigned to differentcolors, or transformed altogether, according to desired parameters forthe data visualization. In some instances, visual characteristics may besubject to constraints where certain features of the appearance of avisual characteristic is limited by the constraints set on parameters ofthe visual characteristic, for example, based on the metadata associatedwith the graphical object. In an example, to reduce computationalexpense, a constraint on a visual characteristic to limit therepresentation of data values within a tolerance of 1% precision can beset.

In some cases, the data itself may be manipulated, resulting inalterations of visual characteristics in the graphical object. Forexample, when dimensions of data are added, removed and/or subject tofiltering, the visualization of data through the graphical object may beappropriately modified according to how the data is adjusted.

In the example provided of the graphical donut, the toroidal shape ofthe donut provides for sales data to be displayed according to salesreported during certain periods of a fiscal year. Thus, while not beinglimited as such, the donut is partitioned into segments in accordancewith sales reported at various points in the year. Alternatively, theability for sprinkles to be scattered about any location on the surfaceof the donut can map to data that records the occurrence of certainsales occasions during the year. It should be understood that the abovedescription provides only an exemplary embodiment of a data visual.Indeed, visual characteristics of a graphical object may have parametersto suit any desirable mapping of dimensions in a data set to the visualcharacteristics. In addition, a graphical object may be appropriatemodified through a graphical manipulation tool to incorporate additionalmetadata that further defines how visual characteristics of thegraphical object may display data visually.

While parameters of visual characteristics in a graphical object may beappropriately varied, dimensions of data and/or visual characteristicsthemselves may be subject to certain filters and/or constraints. When afilter or constraint is applied to the data visualization, a modifieddata visual is generated in accordance with the filter or constraint.For example, a parameter that specifies a broad range under whichdimensions of data fall may provide for a visualization of a largenumber of dimensions of a data set. However, applying a filter thatchanges the parameter to a narrower range under which dimensions of datafall will result in a modified visualization of a smaller number ofdimensions of data to be represented. Similarly, values of parametersthat define the appearance of certain visual characteristics may be setaccording to one or more constraints. As a result, only certain valueswithin a dimension of data may be displayed through the visualcharacteristics through which the constraint(s) are applied.

In the above example of the graphical donut for visualizing sales data,FIG. 9 depicts a filter command box 1540 that provides the ability foran added filter to be applied to the data visualization. The filtercommand box 1540 applies a filter to the sprinkles 1430 of the salesdata visualization. Once applied, FIG. 10 illustrates a graphical donut1106 having a donut base 1410, icing 1422 and sprinkles 1432 where oneor more visual characteristics are linked to the applied filter. Inparticular, the sprinkles 1432 are mapped to a set of data that isfiltered according to setting a sliding scale 1600 that refers to salesrecorded within a certain amount range. A highlighted range 1610 shownalong sliding scale 1600 is provided as a filter for the datarepresented by the graphical donut. In this example, the number of salesevents where the amount collected falls within the highlighted range1610 is represented by the number of sprinkles on the graphical donut.As shown in FIG. 10, for graphical donut 1106, sales events where theamount collected was within a range of about $10,000+/−$1,000 arerepresented as sprinkles 1432.

However, turning toward FIG. 11, the highlighted range 1610 thatcentered around $10,000 is moved to a range of about $5,000+/−$1,000.Accordingly, the graphical donut 1106 of FIG. 11 is transformed to thegraphical donut 1108 of FIG. 11 where only sales events that qualifywithin the range of $5,000+/−$1,000 are displayed, as sprinkles 1434. Asdepicted, the amount of sprinkles 1434 shown is substantially less thanthe amount of sprinkles 1432, denoting that there were substantiallymore sales events with amounts collected in the $10,000+/−$1,000 rangeas compared with sales events with amounts collected in the$5,000+/−$1,000 range. It should be appreciated that depiction ofapplied filters shown in FIGS. 10 and 11 are provided by way of exampleand that any suitable set of filters or constraints can be applied to adata visualization the visualization may dynamically be adjusted throughany appropriate user interface.

The user interface of FIG. 12 generally depicts each of the featuresdescribed above with respect to data visualization through the graphicaldonut. A graphical object may be chosen via selection of “Visual” icon1010; and a data set may be chosen to be presented through the graphicalobject through selection of “Data” icon 1020. Canvas 2000 may displaythe graphical object 1100, a number of proposed visualizations 1300 aswell as filters or constraints 1600 that the visual characteristics ofthe graphical object 1100 and/or the data itself may be subject to.Further, graphical manipulation tool 1500 may provide for parameters ofvisual characteristics of the graphical object to be modified asdesired.

As discussed above, metadata may be associated to visual characteristicsof graphical objects to define parameters through which data may bebound to the visual characteristics. Such metadata provide informationfor how binding or mapping of dimensions of data to visualcharacteristics may occur. For example, the parameters that define howvisual characteristics may receive data to be represented through thevisual characteristics may include metadata that inform how the visualcharacteristics may be adjusted or changed (e.g., transformed, scaled,re-shaped, colored, etc.).

In the example above, to display how much revenue was collected during acertain quarter, the color of icing would identify the particularquarter of interest and the volume of icing would represent the amountof revenue collected for that quarter. In an inverse example, forvisualizing the same information, a different set of parameters could bedefined, such as the color of the icing to represent the amount ofrevenue collected for that quarter and the volume and location of icingspecifying the particular quarter of interest. It can be appreciatedthat visual characteristics of graphical objects may be adjusted inaccordance with any suitable parameters so as to accurately andeffectively represent the data.

The metadata that defines how data may be bound to visualcharacteristics may provide constraints as to what degree the visualcharacteristic(s) may be manipulated. That is, there may be aesthetic orproportional aspects of visual characteristics of the graphical objectthat limit certain dimensions of data from being displayed. Indeed, forsome embodiments, certain data structures may be outside the scope ofwhat a graphical object may be able to represent.

Further, metadata may be associated with the data set itself to defineparameters that describe how dimensions of data may map to certaingraphical objects. For example, different data sets may have intrinsicdifferences. In an embodiment, a data set may be represented as acontinuous variation, such as through a gradient depicted through avisual characteristic. Alternatively, a data set may be displayed as aset of enumerable discrete values through, for example, discretefeatures of a visual characteristic. Metadata may indicate whether thedata set includes a particular range of data values, or for example,geometric implications such as locations, structural features and/orcoordinates. Metadata may describe dimensions of data havingrelationships within sets, for example, a listing of peer values oralternatives. In some cases, certain dimensions of data in a data setmay be discarded as outliers, and not included in the visualization ofthe data set. Dimensions of data may also be described by metadata as towhether the data is sampleable, quantizable and/or smoothable in nature.As discussed above, a system may analyze a graphical object through agraphical manipulation tool and propose metadata for incorporation intothe graphical object, making the graphical object more suitable forrepresenting data.

A system that produces a visualization of dimensions of data by mappingthe dimensions of data to an independently created graphical object maygenerate the data visual through any series of steps. In an embodimentfor generating the data visual, a system analyzes the metadata and/orparameters associated with visual characteristics of the graphicalobject. The system also analyzes metadata and/or parameters intrinsic tothe data set itself. The system then identifies certain visualcharacteristics of the graphical object and the ability for certaintypes and dimensions of data map to one or more visual characteristics.Schemes for transforming dimensions of the data set to suit the processof mapping the visual characteristics to the dimensions of data are alsoascertained.

Further, a number of proposed visualizations for binding dimensions ofdata in the data set to visual characteristics of the graphical objectmay be presented. Accordingly, a user may select which of the proposedvisualizations of the data is preferred to suit the user's interests(e.g., understanding the data better, presenting to the data to a group,etc.).

Additionally, and as described above, parameters of the visualcharacteristics as well as the dimensions of data may be appropriatelymanipulated, as desired, to yield modified data visualizations.

Having thus described several aspects of at least one embodiment of thisinvention, it is to be appreciated that alterations, modifications, andimprovements are intended to be part of this disclosure, and areintended to be within the spirit and scope of the invention.Accordingly, the foregoing description and drawings are by way ofexample only.

The above-described embodiments of the present invention can beimplemented in any of numerous ways. For example, the embodiments may beimplemented using hardware, software or a combination thereof. Whenimplemented in software, the software code can be executed on anysuitable processor or collection of processors, whether provided in asingle computer or distributed among multiple computers.

Further, it should be appreciated that a computer may be embodied in anyof a number of forms, such as a rack-mounted computer, a desktopcomputer, a laptop computer, or a tablet computer. Additionally, acomputer may be embedded in a device not generally regarded as acomputer but with suitable processing capabilities, including a PersonalDigital Assistant (PDA), a smart phone or any other suitable portable orfixed electronic device.

Also, a computer may have one or more input and output devices. Thesedevices can be used, among other things, to present a user interface.Examples of output devices that can be used to provide a user interfaceinclude printers or display screens for visual presentation of outputand speakers or other sound generating devices for audible presentationof output. Examples of input devices that can be used for a userinterface include keyboards, and pointing devices, such as mice, touchpads, digitizing tablets, and touch-responsive display screen, such asdirect-interaction displays, multi-touch displays that respond to two ormore fingers on the screen at the same time. As another example, acomputer may receive input information through speech recognition or inother audible format.

Such computers may be interconnected by one or more networks in anysuitable form, including as a local area network or a wide area network,such as an enterprise network or the Internet. Such networks may bebased on any suitable technology and may operate according to anysuitable protocol and may include wireless networks, wired networks orfiber optic networks.

Also, the various methods or processes outlined herein may be coded assoftware that is executable on one or more processors that employ anyone of a variety of operating systems or platforms. Additionally, suchsoftware may be written using any of a number of suitable programminglanguages and/or programming or scripting tools, and also may becompiled as executable machine language code or intermediate code thatis executed on a framework or virtual machine.

In this respect, the invention may be embodied as a computer-readablemedium (or multiple computer readable media) (e.g., a computer memory,one or more floppy discs, compact discs (CD), optical discs, digitalvideo disks (DVD), magnetic tapes, flash memories, circuitconfigurations in Field Programmable Gate Arrays or other semiconductordevices, or other non-transitory, tangible computer storage medium)encoded with one or more programs that, when executed on one or morecomputers or other processors, perform methods that implement thevarious embodiments of the invention discussed above. Thecomputer-readable medium or media can be transportable, such that theprogram or programs stored thereon can be loaded onto one or moredifferent computers or other processors to implement various aspects ofthe present invention as discussed above.

The terms “program” or “software” are used herein in a generic sense torefer to any type of computer code or set of computer-executableinstructions that can be employed to program a computer or otherprocessor to implement various aspects of the present invention asdiscussed above. Additionally, it should be appreciated that accordingto one aspect of this embodiment, one or more computer programs that,when executed, perform methods of the present invention need not resideon a single computer or processor, but may be distributed in a modularfashion amongst a number of different computers or processors toimplement various aspects of the present invention.

Computer-executable instructions may be in many forms, such as programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types. Typically, the functionality of the program modulesmay be combined or distributed as desired in various embodiments.

Also, data structures may be stored in computer-readable media in anysuitable form. For simplicity of illustration, data structures may beshown to have fields that are related through location in the datastructure. Such relationships may likewise be achieved by assigningstorage for the fields with locations in a computer-readable medium thatconveys relationship between the fields. However, any suitable mechanismmay be used to establish a relationship between information in fields ofa data structure, including through the use of pointers, tags or othermechanisms that establish relationship between data elements.

Various aspects of the present invention may be used alone, incombination, or in a variety of arrangements not specifically discussedin the embodiments described in the foregoing and is therefore notlimited in its application to the details and arrangement of componentsset forth in the foregoing description or illustrated in the drawings.For example, aspects described in one embodiment may be combined in anymanner with aspects described in other embodiments.

Also, the invention may be embodied as a method, of which an example hasbeen provided. The acts performed as part of the method may be orderedin any suitable way. Accordingly, embodiments may be constructed inwhich acts are performed in an order different than illustrated, whichmay include performing some acts simultaneously, even though shown assequential acts in illustrative embodiments.

Use of ordinal terms such as “first,” “second,” “third,” etc., in theclaims to modify a claim element does not by itself connote anypriority, precedence, or order of one claim element over another or thetemporal order in which acts of a method are performed, but are usedmerely as labels to distinguish one claim element having a certain namefrom another element having a same name (but for use of the ordinalterm) to distinguish the claim elements.

Also, the phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including,” “comprising,” or “having,” “containing,” “involving,” andvariations thereof herein, is meant to encompass the dimensions listedthereafter and equivalents thereof as well as additional dimensions.

The invention claimed is:
 1. A method of operating a computing devicefor processing graphical objects having at least one visualcharacteristic, the method comprising: analyzing, via at least oneprocessor a data set to determine one or more graphical objects that aresuitable for visually representing the data set; determining a pluralityof dimensions of the data set; determining at least one of the graphicalobjects that has graphical object characteristics that are suitable forrepresenting the determined dimensions of the data set; and determiningone or more parameters of the at least one visual characteristic thatcan be varied to visually represent data with the at least one of thegraphical objects, the determining including determining at least one ofthe one or more parameters without user input to the determining; andstoring, in association with a representation of the at least one of thegraphical objects, metadata that defines a capacity of the at least onevisual characteristic to represent data.
 2. The method of claim 1,wherein: the one or more parameters of the at least one visualcharacteristic comprises a parameter representing color; and themetadata that defines the capacity of the at least one visualcharacteristic includes a number of colors representable by varying theparameter representing color.
 3. The method of claim 1, wherein: the oneor more parameters of the at least one visual characteristic comprises aparameter representing a size of an element; and the metadata thatdefines the capacity of the at least one visual characteristic defines arange of sizes representable by varying the parameter representing thesize of the element.
 4. The method of claim 1, wherein: the one or moreparameters of the at least one visual characteristic comprises aparameter representing a number of repetitions of an element in the atleast one of the graphical objects; and the metadata that defines thecapacity of the at least one visual characteristic defines a maximumnumber of repetitions of the element representable in the at least oneof the graphical objects.
 5. The method of claim 4, wherein the one ormore parameters of the number of repetitions comprises a parameterrepresenting a layout of an arrangement of the repetitions of theelement.
 6. The method of claim 1, wherein: the one or more parametersof the at least one visual characteristic comprises a parameterrepresenting a number of sub-divisions of an element in the at least oneof the graphical objects; and the metadata that defines the capacity ofthe at least one visual characteristic defines a maximum number ofsub-divisions of the element representable in the at least one of thegraphical objects.
 7. The method of claim 6, wherein the one or moreparameters of the number of sub-divisions comprises a parameterrepresenting a layout of an arrangement of the sub-divisions of theelement.
 8. The method of claim 1, wherein: the one or more parametersof the at least one visual characteristic comprises a parameterrepresenting an ability of an element for animation in the at least oneof the graphical objects; and the metadata that defines the capacity ofthe at least one visual characteristic includes at least one pattern ofmovement representable by varying the parameter representing the abilityof an element for animation.
 9. The method of claim 1, wherein:determining the at least one of the graphical objects that has graphicalobject characteristics that are suitable for representing the determineddimensions of the data set comprises statistical pattern matching. 10.The method of claim 1, further comprising: generating additionalmetadata representing an additional capacity of the at least one visualcharacteristic to represent data for incorporation with the at least oneof the graphical objects.
 11. The method of claim 10, furthercomprising: proposing the additional metadata representing an additionalcapacity of the at least one visual characteristic to represent data.12. The method of claim 11, wherein: proposing the additional metadatarepresenting an additional capacity of the at least one visualcharacteristic to represent data comprises displaying a previewpresented on a user interface of the additional capacity of the at leastone visual characteristic to represent data.
 13. The method of claim 10,wherein: generating additional metadata representing an additionalcapacity of the at least one visual characteristic to represent datacomprises receiving input through a user interface of the additionalcapacity of the at least one visual characteristic to represent data orautomatically generating the additional metadata.
 14. The method ofclaim 1, wherein: the at least one visual characteristic of the at leastone of the graphical objects includes at least one of a color intensity,one or more segments, one or more layers, or one or more boundaries thatmap to a dimension of a data set.
 15. At least one hardwarecomputer-readable computer storage medium storing computer-executableinstructions that, when executed by at least one processor, perform amethod for processing graphical objects having visual characteristicsfor data visualization, the method comprising: analyzing a data set todetermine a graphical object that is suitable for visually representingthe data set; determining one or more parameters of a visualcharacteristic that can be varied to visually represent data with thegraphical object, the determining including determining at least one ofthe one or more parameters without user input to the determining;storing, in association with a representation of the graphical object,metadata that defines a capacity of the visual characteristic torepresent data; generating additional metadata representing anadditional capacity of the visual characteristic to represent data forincorporation with the graphical object; and receiving input toincorporate the additional metadata with the graphical object through auser interface.
 16. The computer-readable storage medium of claim 15,wherein: the one or more parameters of the visual characteristiccomprises a parameter representing color; and the metadata that definesthe capacity of the visual characteristic indicates a number of colorsrepresentable by varying the parameter representing color.
 17. Thecomputer-readable storage medium of claim 15, wherein: the one or moreparameters of the visual characteristic comprises a parameterrepresenting a size of an element; and the metadata that defines thecapacity of the visual characteristic defines a range of sizesrepresentable by varying the parameter representing the size of theelement.
 18. The computer-readable storage medium of claim 15, wherein:the one or more parameters of the visual characteristic comprises aparameter representing a number of repetitions or sub-divisions of anelement in the graphical object; and the metadata that defines thecapacity of the visual characteristic defines a maximum number ofrepetitions or sub-divisions of the element representable in thegraphical object.
 19. The computer-readable storage medium of claim 15,wherein: the one or more parameters of the visual characteristiccomprises a parameter representing an animation ability of an element inthe graphical object; and the metadata that defines the capacity of thevisual characteristic includes at least one pattern of movementrepresentable by varying the parameter representing the animationability of the element.
 20. At least one hardware computer-readablecomputer storage medium storing computer-executable instructions that,when executed by at least one processor, perform a method for processinggraphical objects having visual characteristics for data visualization,the method comprising: analyzing, without user input, a data set todetermine a graphical object that is suitable for visually representingthe data set; analyzing the graphical object to determine one or moreparameters of the plurality of visual characteristics that can be variedto visually represent data with the graphical object, the analyzing todetermine including analyzing the graphical object to determine at leastone of the one or more parameters without user input to the analyzing todetermine the at least one of the one or more parameters; storing, inassociation with a representation of the graphical object, metadatadefining a capacity of one or more of the plurality of visualcharacteristics to represent data; generating additional metadatarepresenting an additional capacity of the plurality of visualcharacteristics to represent data for incorporation with the graphicalobject; displaying a preview of the additional metadata representing anadditional capacity of the at least one visual characteristic torepresent data on a user interface; and receiving input to incorporatethe additional metadata with the graphical object through the userinterface.